package ucd.csi.comp30220.fall2011.oteop.flight.impl;

import java.rmi.Remote;
import java.rmi.RemoteException;

import ucd.csi.comp30220.fall2011.oteop.collision.Collision;
import ucd.csi.comp30220.fall2011.oteop.flight.FlightInfo;
import ucd.csi.comp30220.fall2011.oteop.navigation.Position;

public interface RemoteFlight extends Remote {
    
    public FlightInfo getInfo() throws RemoteException;
    public Position getPosition() throws RemoteException;
    public double getCourse() throws RemoteException;
    public int getSpeed() throws RemoteException;
    public int getAltitude() throws RemoteException;
    public boolean takingOff() throws RemoteException;
    public boolean inLevelFlight() throws RemoteException;
    public boolean onFinalApproach() throws RemoteException; 
    public boolean hasLanded() throws RemoteException;
    public void start() throws RemoteException;
    public void setRoute(Position[] waypoints) throws RemoteException;
    public void setCourse(double course) throws RemoteException;
    public void setAltitude(int atlitide) throws RemoteException;
    public void collisionDetected(Collision collision) throws RemoteException;
}
